/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package com.plian.system.vo.pm.realproperty;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.plian.Tools.DateUtil;
import com.plian.system.entity.pm.realproperty.RealProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 不动产报表实体类
 *
 * @author panqb
 * @since 2021-10-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class RealPropertyFormVO extends RealProperty {

	private static final long serialVersionUID = 1L;

	/**
	 * 填报单位
	 */
	@ApiModelProperty(value = "填报单位")
	private String fillingUnitId;
	/**
	 * 不动产登记id
	 */
	@ApiModelProperty(value = "不动产登记id")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long realPropertyId;
	/**
	 * 编码
	 */
	@ApiModelProperty(value = "编码")
	private String code;
	/**
	 * 年度
	 */
	@ApiModelProperty(value = "年度")
	private String year;
	/**
	 * 土地入账价值
	 */
	@ApiModelProperty(value = "土地入账价值")
	private BigDecimal landBookValue;
	/**
	 * 房产入账价值
	 */
	@ApiModelProperty(value = "房产入账价值")
	private BigDecimal houseBookValue;
	/**
	 * 可出租面积(m²)
	 */
	@ApiModelProperty(value = "可出租面积(m²)")
	private BigDecimal rentableArea;

	/**
	 * 闲置面积(m²)
	 */
	@ApiModelProperty(value = "闲置面积(m²)")
	private BigDecimal unusedArea;
	/**
	 * 已出租面积(m²)
	 */
	@ApiModelProperty(value = "已出租面积(m²)")
	private BigDecimal leasedArea;
	/**
	 * 应收租金
	 */
	@ApiModelProperty(value = "应收租金")
	private BigDecimal receivableRent;
	/**
	 * 实收租金
	 */
	@ApiModelProperty(value = "实收租金")
	private BigDecimal paidRent;
	/**
	 * 收费车位个数
	 */
	@ApiModelProperty(value = "收费车位个数")
	private Integer paidParkingNumber;
	/**
	 * 应收金额
	 */
	@ApiModelProperty(value = "应收金额")
	private BigDecimal receivableAmount;
	/**
	 * 实收金额
	 */
	@ApiModelProperty(value = "实收金额")
	private BigDecimal paidAmount;
	/**
	 * 审批人
	 */
	@ApiModelProperty(value = "审批人")
	private String approvedUser;
	/**
	 * 审批时间
	 */
	@ApiModelProperty(value = "审批时间")
	@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
	@JsonFormat(pattern = DateUtil.PATTERN_DATETIME, timezone = "Asia/Shanghai")
	private Date approvedTime;
	/**
	 * 审批意见
	 */
	@ApiModelProperty(value = "审批意见")
	private String approvedOpinion;
	/**
	 * 表单审批类型
	 */
	@ApiModelProperty(value = "表单审批类型")
	private String formType;

	/**
	 * 单位名称
	 */
	@ApiModelProperty(value = "单位名称")
	private String orgName;
	/**
	 * 单位编码
	 */
	@ApiModelProperty(value = "单位编码")
	private String orgCode;

	private String createUserName;

	private String approvedUserName;

	@ApiModelProperty(value = "填报单位名称")
	private String fillingUnitName;

	@ApiModelProperty(value = "土地性质名称")
	private String landNatureName;

	@ApiModelProperty(value = "土地用途名称")
	private String landUseName;

	@ApiModelProperty(value = "房屋结构名称")
	private String houseStructureName;

	@ApiModelProperty(value = "房产性质名称")
	private String houseNatureName;

	@ApiModelProperty(value = "房产来源名称")
	private String houseSourceName;

	@ApiModelProperty(value = "房产规划用途名称")
	private String houseUseName;

	@ApiModelProperty(value = "委托单位名称")
	private String entrustUnitName;

//	@ApiModelProperty(value = "上个版本数据")
//	private RealPropertyVO lastInfoVO;

	@ApiModelProperty(value = "处置方式名称")
	private String disposalWayName;

	@ApiModelProperty(value = "不动产现状Id")
	private  String quoId;

	@ApiModelProperty(value = "序号")
	private int index;

	/**
	 * 土地确权情况对应名称
	 */
	private String landMadeSituationName;


	/**
	 * 是否有可出租面积
	 */

	private String isHaveRentAreaName;

	/**
	 * 是否每年公允值入账名称
	 */
	private String isHaveFairValueName;

	/**
	 * 房产确权情况对应名称
	 */
	private String houseMadeSituationName;

	/**
	 * 房产土地对应性质名称
	 */
	private String realPropertyNatureName;

	private int num;

	/**
	 * 总面积(m²)
	 */
	@ApiModelProperty(value = "房产总面积(m²)、房产土地公用")
	private BigDecimal totalArea;

	/**
	 * 已确权面积(m²)
	 */
	@ApiModelProperty(value = "已确权面积(m²)、房产土地公用")
	private BigDecimal madeArea;
	/**
	 * 未确权面积m²
	 */
	@ApiModelProperty(value = "未确权面积(m²)、房产土地公用")
	private BigDecimal noMadeArea;
}
